import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NvCommonModule } from '@common/nvCommon.module';
import { VulnerabilityProfileComponent } from './vulnerability-profile.component';
import { RouterModule, Routes } from '@angular/router';
import { VulnerabilityProfileTableComponent } from './vulnerability-profile-table/vulnerability-profile-table.component';
import { VulnerabilityProfileTableDialogComponent } from './vulnerability-profile-table/vulnerability-profile-table-dialog/vulnerability-profile-table-dialog.component';
import { MatCardModule } from '@angular/material/card';
import { LoadingTemplateModule } from '@components/ui/loading-template/loading-template.module';
import { ObserveModule } from '@common/directives/observe/observe.module';
import { VulnerabilityProfileService } from '@routes/vulnerability-profile/vulnerability-profile.service';
import { AssetsHttpService } from '@common/api/assets-http.service';
import { RisksHttpService } from '@common/api/risks-http.service';
import { AgGridModule } from 'ag-grid-angular';
import { QuickFilterModule } from '@components/quick-filter/quick-filter.module';
import { MatButtonModule } from '@angular/material/button';
import { VulnerabilityProfileTableEditCellComponent } from './vulnerability-profile-table/vulnerability-profile-table-edit-cell/vulnerability-profile-table-edit-cell.component';
import { ConfirmDialogModule } from '@components/ui/confirm-dialog/confirm-dialog.module';
import { MatInputModule } from '@angular/material/input';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatChipsModule } from '@angular/material/chips';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { ReactiveFormsModule } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatTooltipModule } from '@angular/material/tooltip';
import { LoadingButtonModule } from '@components/ui/loading-button/loading-button.module';

const routes: Routes = [{ path: '', component: VulnerabilityProfileComponent }];

@NgModule({
  declarations: [
    VulnerabilityProfileComponent,
    VulnerabilityProfileTableComponent,
    VulnerabilityProfileTableDialogComponent,
    VulnerabilityProfileTableEditCellComponent,
  ],
  imports: [
    CommonModule,
    NvCommonModule,
    RouterModule.forChild(routes),
    MatCardModule,
    LoadingTemplateModule,
    LoadingButtonModule,
    ObserveModule,
    AgGridModule,
    QuickFilterModule,
    MatButtonModule,
    ConfirmDialogModule,
    MatInputModule,
    MatFormFieldModule,
    MatChipsModule,
    MatAutocompleteModule,
    ReactiveFormsModule,
    TranslateModule,
    MatTooltipModule,
    MatIconModule,
    MatMenuModule,
  ],
  providers: [VulnerabilityProfileService, AssetsHttpService, RisksHttpService],
})
export class VulnerabilityProfileModule {}
